package cn.jasonone.tio.tcp.commons;

import cn.jasonone.tio.tcp.handler.CommandHandler;

/**
 * 命令注册器
 * @author xujie
 * @version 1.0
 * @date 2022/1/21 8:02
 */
public interface CommandRegister {

    /**
     * 注册指令处理器
     *
     * @param commandHandler 指令处理器
     * @param replace 如果指令处理器已经注册,是否替换
     * @return 注册成功返回true,否则返回false
     */
    boolean registerCommand(CommandHandler commandHandler, boolean replace) throws Exception;

    /**
     * 注册指令处理器
     * @param commandHandler 指令处理器
     * @return 注册成功返回true,否则返回false
     */
    default boolean registerCommand(CommandHandler commandHandler) throws Exception{
        return this.registerCommand(commandHandler, false);
    }
}
